class EmpleadosController < ApplicationController
  # GET /empleados
  # GET /empleados.xml
  def index
    @empleados = Empleado.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @empleados }
    end
  end

  # GET /empleados/1
  # GET /empleados/1.xml
  def show
    @empleado = Empleado.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @empleado }
    end
  end

  # GET /empleados/new
  # GET /empleados/new.xml
  def new
    @empleado = Empleado.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @empleado }
    end
  end

  # GET /empleados/1/edit
  def edit
    @empleado = Empleado.find(params[:id])
  end

  # POST /empleados
  # POST /empleados.xml
  def create
    @empleado = Empleado.new(params[:empleado])

    respond_to do |format|
      if @empleado.save
        flash[:notice] = 'Empleado was successfully created.'
        format.html { redirect_to(@empleado) }
        format.xml  { render :xml => @empleado, :status => :created, :location => @empleado }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @empleado.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /empleados/1
  # PUT /empleados/1.xml
  def update
    @empleado = Empleado.find(params[:id])

    respond_to do |format|
      if @empleado.update_attributes(params[:empleado])
        flash[:notice] = 'El empleado fue actualizado exitosamente'
        format.html { redirect_to(@empleado) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @empleado.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /empleados/1
  # DELETE /empleados/1.xml
  def destroy
    @empleado = Empleado.find(params[:id])
    @empleado.destroy

    respond_to do |format|
      format.html { redirect_to(empleados_url) }
      format.xml  { head :ok }
    end
  end

  def sesion_empleados

    if  params['openid.mode'] == 'cancel'

    	redirect_to root_path
    else
      @email = params['openid.ext1.value.email']
      empleado = Empleado.find(:first, :conditions => [" correo = ?", @email ])

      if empleado 
        
        session[:empleado_correo] = empleado.correo
        session[:empleado_nombre] = empleado.nombre
        session[:empleado_apellido] = empleado.apellido
        session[:empleado_id] = empleado.id
        session[:type] = empleado.rol
        flash[:notice] = empleado.nombre + " " + empleado.apellido + " ha iniciado sesion como "+empleado.rol.to_s+""
        #redirect_to :controller => 'empleados', :action => 'show', :id => empleado.id
        redirect_to empleado_path(empleado.id)

      else

        flash[:error] = "\"" + @email + "\" no esta registrado, póngase en contacto con el administrador de soporte!"
        redirect_to :controller => 'principals', :action => 'home'
       
      end
    end
  end

  def asignar_rutas
    @direccions = Direccion.all
    @direcmapa= Direccion.find_by_sql("SELECT d.latitud,d.longitud FROM direccions d, orden_servicios o, empleados e, rutas r where d.id=o.direccion_id and o.id=r.orden_servicio_id and e.id=r.empleado_id and e.id=1")
    @ordenes_pendiente = OrdenServicio.all(:conditions => {:estatus => 'Pendiente por Recolectar' })
    # @empleados_disponibles = Empleado.find_by_sql("select e.nombre as nombre, e.apellido as apellido from empleados e where e.id not in (select o.empleado_id from orden_servicios o where o.empleado_id is not null)")
    @empleados_disponibles = Empleado.find_by_sql("select e.id, e.nombre from empleados e where e.disponibilidad = 'Disponible' and e.rol = 'Recolector'")
    respond_to do |format|
      format.html # showrutas_pendiente.html.erb
      format.xml  { render :xml => @ordenes_pendiente }
    end
  end
end
